<!DOCTYPE html>
<html lang="en">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"/>
    <meta charset="utf-8"/>
    <title>     &raquo; \
</title>
    <meta name="author" content=""/>
    <meta name="description" content=""/>

            <link href="../css/template.css" rel="stylesheet" media="all"/>
    
            <!--[if lt IE 9]>
        
        <![endif]-->
        <script src="../js/jquery-1.7.1.min.js" type="text/javascript"></script>
        <script src="../js/jquery-ui-1.8.2.custom.min.js" type="text/javascript"></script>
        <script src="../js/jquery.mousewheel.min.js" type="text/javascript"></script>
        <script src="../js/bootstrap.js" type="text/javascript"></script>
        <script src="../js/template.js" type="text/javascript"></script>
        <script src="../js/prettify/prettify.min.js" type="text/javascript"></script>
    
            <link rel="shortcut icon" href="../img/favicon.ico"/>
        <link rel="apple-touch-icon" href="../img/apple-touch-icon.png"/>
        <link rel="apple-touch-icon" sizes="72x72" href="../img/apple-touch-icon-72x72.png"/>
        <link rel="apple-touch-icon" sizes="114x114" href="../img/apple-touch-icon-114x114.png"/>
    </head>
<body>

        <div class="navbar navbar-fixed-top">
        <div class="navbar-inner">
            <div class="container">
                <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                    <span class="icon-bar"></span> <span class="icon-bar"></span>
                    <span class="icon-bar"></span> </a>
                <a class="brand" href="http://www.trotri.com/">Trotri官网</a><a class="brand" href="../index.html">TFC-Trotri Foundation Classes</a>

                <div class="nav-collapse">
                    <ul class="nav">
                        <li class="dropdown">
                            <a href="#api" class="dropdown-toggle" data-toggle="dropdown">
                                API Documentation <b class="caret"></b>
                            </a>
                            <ul class="dropdown-menu">
                                                                    <li><a>Namespaces</a></li>
                                                                        <li><a href="../namespaces/tfc.html">tfc</a></li>
                                                                                                                                </ul>
                        </li>
                        <li class="dropdown" id="charts-menu">
                            <a href="#charts" class="dropdown-toggle" data-toggle="dropdown">
                                Charts <b class="caret"></b>
                            </a>
                            <ul class="dropdown-menu">
                                <li>
                                    <a href="../graph_class.html">
                                        <i class="icon-list-alt"></i>&#160;Class hierarchy diagram
                                    </a>
                                </li>
                            </ul>
                        </li>
                        <li class="dropdown" id="reports-menu">
                            <a href="#reports" class="dropdown-toggle" data-toggle="dropdown">
                                Reports <b class="caret"></b>
                            </a>
                            <ul class="dropdown-menu">
                                <li>
                                    <a href="../errors.html">
                                         
                                    </a>
                                </li>
                                <li>
                                    <a href="../markers.html">
                                        <i class="icon-list-alt"></i>&#160;Markers
                                    </a>
                                </li>
                                <li>
                                    <a href="../deprecated.html">
                                        <i class="icon-list-alt"></i>&#160;Deprecated
                                    </a>
                                </li>
                            </ul>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
        <div class="go_to_top">
            <a href="#___" style="color: inherit">Back to top&#160;&#160;<i class="icon-upload icon-white"></i></a>
        </div>
    </div>
    
    <div id="___" class="container">
        <noscript>
            <div class="alert alert-warning">
                Javascript is disabled; several features are only available if Javascript is enabled.
            </div>
        </noscript>

        
            
    <div class="row">

        <div class="span4">
            <div class="btn-group view pull-right" data-toggle="buttons-radio">
                <button class="btn details" title="Show descriptions and method names">
                    <i class="icon-list"></i></button><button class="btn simple" title="Show only method names">
                    <i class="icon-align-justify"></i>
                </button>
            </div>
            <ul class="side-nav nav nav-list">
                <li class="nav-header">
                    <i class="icon-map-marker"></i> Namespaces
                </li>
                    
        <li>
        <a href="../namespaces/tfc.html" title="tfc">
            <i class="icon-th"></i> tfc
        </a>
        <ul class="nav nav-list nav-namespaces">
                
        <li>
        <a href="../namespaces/tfc.util.html" title="util">
            <i class="icon-th"></i> util
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.mvc.html" title="mvc">
            <i class="icon-th"></i> mvc
        </a>
        <ul class="nav nav-list nav-namespaces">
                
        <li>
        <a href="../namespaces/tfc.mvc.routes.html" title="routes">
            <i class="icon-th"></i> routes
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.mvc.form.html" title="form">
            <i class="icon-th"></i> form
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.mvc.interfaces.html" title="interfaces">
            <i class="icon-th"></i> interfaces
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.saf.html" title="saf">
            <i class="icon-th"></i> saf
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.validator.html" title="validator">
            <i class="icon-th"></i> validator
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.db.html" title="db">
            <i class="icon-th"></i> db
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.ap.html" title="ap">
            <i class="icon-th"></i> ap
        </a>
        <ul class="nav nav-list nav-namespaces">
                
        <li>
        <a href="../namespaces/tfc.ap.interfaces.html" title="interfaces">
            <i class="icon-th"></i> interfaces
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.log.html" title="log">
            <i class="icon-th"></i> log
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
        <li>
        <a href="../namespaces/tfc.auth.html" title="auth">
            <i class="icon-th"></i> auth
        </a>
        <ul class="nav nav-list nav-namespaces">
                
    
        </ul>
    </li>
    
        </ul>
    </li>
    
            </ul>
        </div>

        <div class="span8 namespace-contents">
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/default.html">\</a>
    </li>

        </ul>

        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-constant"></i> Constants</h3>
                                        <div id="constant_DEBUG" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DEBUG .collapse">
        <h1>DEBUG<a href="../namespaces/.html#constant_DEBUG">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DEBUG" class="more">« More »</a>    </div>

                                        <div id="constant_MAGIC_QUOTES_GPC" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_MAGIC_QUOTES_GPC .collapse">
        <h1>MAGIC_QUOTES_GPC<a href="../namespaces/.html#constant_MAGIC_QUOTES_GPC">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_MAGIC_QUOTES_GPC" class="more">« More »</a>    </div>

                                        <div id="constant_MINUTE_IN_SECONDS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_MINUTE_IN_SECONDS .collapse">
        <h1>MINUTE_IN_SECONDS<a href="../namespaces/.html#constant_MINUTE_IN_SECONDS">¶</a></h1>
        <p class="short_description">时间常量，单位：秒</p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_MINUTE_IN_SECONDS" class="more">« More »</a>    </div>

                                        <div id="constant_HOUR_IN_SECONDS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_HOUR_IN_SECONDS .collapse">
        <h1>HOUR_IN_SECONDS<a href="../namespaces/.html#constant_HOUR_IN_SECONDS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_HOUR_IN_SECONDS" class="more">« More »</a>    </div>

                                        <div id="constant_DAY_IN_SECONDS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DAY_IN_SECONDS .collapse">
        <h1>DAY_IN_SECONDS<a href="../namespaces/.html#constant_DAY_IN_SECONDS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DAY_IN_SECONDS" class="more">« More »</a>    </div>

                                        <div id="constant_WEEK_IN_SECONDS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_WEEK_IN_SECONDS .collapse">
        <h1>WEEK_IN_SECONDS<a href="../namespaces/.html#constant_WEEK_IN_SECONDS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_WEEK_IN_SECONDS" class="more">« More »</a>    </div>

                                        <div id="constant_MONTH_IN_SECONDS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_MONTH_IN_SECONDS .collapse">
        <h1>MONTH_IN_SECONDS<a href="../namespaces/.html#constant_MONTH_IN_SECONDS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_MONTH_IN_SECONDS" class="more">« More »</a>    </div>

                                        <div id="constant_YEAR_IN_SECONDS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_YEAR_IN_SECONDS .collapse">
        <h1>YEAR_IN_SECONDS<a href="../namespaces/.html#constant_YEAR_IN_SECONDS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_YEAR_IN_SECONDS" class="more">« More »</a>    </div>

                                        <div id="constant_DS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DS .collapse">
        <h1>DS<a href="../namespaces/.html#constant_DS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DS" class="more">« More »</a>    </div>

                                        <div id="constant_PS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_PS .collapse">
        <h1>PS<a href="../namespaces/.html#constant_PS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_PS" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_TFC_SAF" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_TFC_SAF .collapse">
        <h1>DIR_TFC_SAF<a href="../namespaces/.html#constant_DIR_TFC_SAF">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_TFC_SAF" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_TFC" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_TFC .collapse">
        <h1>DIR_TFC<a href="../namespaces/.html#constant_DIR_TFC">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_TFC" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_LIBRARIES" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_LIBRARIES .collapse">
        <h1>DIR_LIBRARIES<a href="../namespaces/.html#constant_DIR_LIBRARIES">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_LIBRARIES" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_ROOT" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_ROOT .collapse">
        <h1>DIR_ROOT<a href="../namespaces/.html#constant_DIR_ROOT">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_ROOT" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_SERVICES" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_SERVICES .collapse">
        <h1>DIR_SERVICES<a href="../namespaces/.html#constant_DIR_SERVICES">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_SERVICES" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_SERVICES_LANGUAGES" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_SERVICES_LANGUAGES .collapse">
        <h1>DIR_SERVICES_LANGUAGES<a href="../namespaces/.html#constant_DIR_SERVICES_LANGUAGES">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_SERVICES_LANGUAGES" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_SRV" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_SRV .collapse">
        <h1>DIR_SRV<a href="../namespaces/.html#constant_DIR_SRV">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_SRV" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP .collapse">
        <h1>DIR_APP<a href="../namespaces/.html#constant_DIR_APP">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_COMPONENTS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_COMPONENTS .collapse">
        <h1>DIR_APP_COMPONENTS<a href="../namespaces/.html#constant_DIR_APP_COMPONENTS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_COMPONENTS" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_LANGUAGES" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_LANGUAGES .collapse">
        <h1>DIR_APP_LANGUAGES<a href="../namespaces/.html#constant_DIR_APP_LANGUAGES">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_LANGUAGES" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_LIBRARY" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_LIBRARY .collapse">
        <h1>DIR_APP_LIBRARY<a href="../namespaces/.html#constant_DIR_APP_LIBRARY">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_LIBRARY" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_MODULES" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_MODULES .collapse">
        <h1>DIR_APP_MODULES<a href="../namespaces/.html#constant_DIR_APP_MODULES">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_MODULES" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_PLUGINS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_PLUGINS .collapse">
        <h1>DIR_APP_PLUGINS<a href="../namespaces/.html#constant_DIR_APP_PLUGINS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_PLUGINS" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_SCRIPTS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_SCRIPTS .collapse">
        <h1>DIR_APP_SCRIPTS<a href="../namespaces/.html#constant_DIR_APP_SCRIPTS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_SCRIPTS" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_TESTS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_TESTS .collapse">
        <h1>DIR_APP_TESTS<a href="../namespaces/.html#constant_DIR_APP_TESTS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_TESTS" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_VIEWS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_VIEWS .collapse">
        <h1>DIR_APP_VIEWS<a href="../namespaces/.html#constant_DIR_APP_VIEWS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_VIEWS" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_APP_WIDGETS" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_APP_WIDGETS .collapse">
        <h1>DIR_APP_WIDGETS<a href="../namespaces/.html#constant_DIR_APP_WIDGETS">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_APP_WIDGETS" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_CFG" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_CFG .collapse">
        <h1>DIR_CFG<a href="../namespaces/.html#constant_DIR_CFG">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_CFG" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_CFG_APP" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_CFG_APP .collapse">
        <h1>DIR_CFG_APP<a href="../namespaces/.html#constant_DIR_CFG_APP">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_CFG_APP" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_CFG_DB" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_CFG_DB .collapse">
        <h1>DIR_CFG_DB<a href="../namespaces/.html#constant_DIR_CFG_DB">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_CFG_DB" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_CFG_RAL" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_CFG_RAL .collapse">
        <h1>DIR_CFG_RAL<a href="../namespaces/.html#constant_DIR_CFG_RAL">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_CFG_RAL" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_CFG_KEY" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_CFG_KEY .collapse">
        <h1>DIR_CFG_KEY<a href="../namespaces/.html#constant_DIR_CFG_KEY">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_CFG_KEY" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_CFG_CACHE" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_CFG_CACHE .collapse">
        <h1>DIR_CFG_CACHE<a href="../namespaces/.html#constant_DIR_CFG_CACHE">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_CFG_CACHE" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_DATA" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_DATA .collapse">
        <h1>DIR_DATA<a href="../namespaces/.html#constant_DIR_DATA">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_DATA" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_DATA_APP" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_DATA_APP .collapse">
        <h1>DIR_DATA_APP<a href="../namespaces/.html#constant_DIR_DATA_APP">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_DATA_APP" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_DATA_UPLOAD" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_DATA_UPLOAD .collapse">
        <h1>DIR_DATA_UPLOAD<a href="../namespaces/.html#constant_DIR_DATA_UPLOAD">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_DATA_UPLOAD" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_DATA_RUNTIME" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_DATA_RUNTIME .collapse">
        <h1>DIR_DATA_RUNTIME<a href="../namespaces/.html#constant_DIR_DATA_RUNTIME">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_DATA_RUNTIME" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_DATA_RUNTIME_ROLES" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_DATA_RUNTIME_ROLES .collapse">
        <h1>DIR_DATA_RUNTIME_ROLES<a href="../namespaces/.html#constant_DIR_DATA_RUNTIME_ROLES">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_DATA_RUNTIME_ROLES" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_DATA_RUNTIME_ENTITIES" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_DATA_RUNTIME_ENTITIES .collapse">
        <h1>DIR_DATA_RUNTIME_ENTITIES<a href="../namespaces/.html#constant_DIR_DATA_RUNTIME_ENTITIES">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_DATA_RUNTIME_ENTITIES" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_LOG" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_LOG .collapse">
        <h1>DIR_LOG<a href="../namespaces/.html#constant_DIR_LOG">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_LOG" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_LOG_APP" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_LOG_APP .collapse">
        <h1>DIR_LOG_APP<a href="../namespaces/.html#constant_DIR_LOG_APP">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_LOG_APP" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_WEBROOT" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_WEBROOT .collapse">
        <h1>DIR_WEBROOT<a href="../namespaces/.html#constant_DIR_WEBROOT">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_WEBROOT" class="more">« More »</a>    </div>

                                        <div id="constant_DIR_WEBROOT_STATIC" class="element ajax clickable constant" data-toggle="collapse" data-target="#constant_DIR_WEBROOT_STATIC .collapse">
        <h1>DIR_WEBROOT_STATIC<a href="../namespaces/.html#constant_DIR_WEBROOT_STATIC">¶</a></h1>
        <p class="short_description"></p>
        <div class="details collapse"></div>
        <a href="../namespaces/.html#constant_DIR_WEBROOT_STATIC" class="more">« More »</a>    </div>

                            </div>
        
            
                
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.util.html">util</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_DbSession" class="element ajax clickable class" data-toggle="collapse" data-target="#class_DbSession .collapse">
        <h1>DbSession<a href="../classes/tfc.util.DbSession.html">¶</a></h1>
        <p class="short_description">DbSession class file
用MySQL数据库存储会话，默认自动创建SESSION表
手动建表时，session_id一定要加主键约束，不然SQL:REPLACE语句会添加很多新记录</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.DbSession.html" class="more">« More »</a>    </div>

                                        <div id="class_Image" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Image .collapse">
        <h1>Image<a href="../classes/tfc.util.Image.html">¶</a></h1>
        <p class="short_description">Image class file
图片处理类，包含生成验证码、缩略图、图片水印、文字水印</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Image.html" class="more">« More »</a>    </div>

                                        <div id="class_Mcrypt" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Mcrypt .collapse">
        <h1>Mcrypt<a href="../classes/tfc.util.Mcrypt.html">¶</a></h1>
        <p class="short_description">Mcrypt class file
可逆的加密算法类，基于流加密算法</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Mcrypt.html" class="more">« More »</a>    </div>

                                        <div id="class_Paginator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Paginator .collapse">
        <h1>Paginator<a href="../classes/tfc.util.Paginator.html">¶</a></h1>
        <p class="short_description">Paginator class file
分页处理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Paginator.html" class="more">« More »</a>    </div>

                                        <div id="class_Language" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Language .collapse">
        <h1>Language<a href="../classes/tfc.util.Language.html">¶</a></h1>
        <p class="short_description">Language class file
语言国际化管理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Language.html" class="more">« More »</a>    </div>

                                        <div id="class_Upload" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Upload .collapse">
        <h1>Upload<a href="../classes/tfc.util.Upload.html">¶</a></h1>
        <p class="short_description">Upload class file
上传文件类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Upload.html" class="more">« More »</a>    </div>

                                        <div id="class_String" class="element ajax clickable class" data-toggle="collapse" data-target="#class_String .collapse">
        <h1>String<a href="../classes/tfc.util.String.html">¶</a></h1>
        <p class="short_description">String class file
字符串处理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.String.html" class="more">« More »</a>    </div>

                                        <div id="class_Power" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Power .collapse">
        <h1>Power<a href="../classes/tfc.util.Power.html">¶</a></h1>
        <p class="short_description">Power class file
权限验证类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Power.html" class="more">« More »</a>    </div>

                                        <div id="class_Ral" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Ral .collapse">
        <h1>Ral<a href="../classes/tfc.util.Ral.html">¶</a></h1>
        <p class="short_description">Ral class file
Resource Access Layer 需要开启CURL支持</p>
        <div class="details collapse"><pre>
CURLOPT_URL                读取Url
CURLOPT_HEADER             返回内容中不包含HTTP头
CURLOPT_FOLLOWLOCATION     将服务器返回的Location放在header中递归返回给服务器
CURLOPT_RETURNTRANSFER     将curl_exec()获取的信息以文件流的形式返回，而不直接输出
CURLOPT_NOSIGNAL           关闭alarm，支持ms级超时
CURLOPT_CONNECTTIMEOUT_MS  最长连接时间
CURLOPT_TIMEOUT_MS         最长读取和执行时间，精确到毫秒
CURLOPT_POST               发送POST请求，与表单提交效果是一样的
CURLOPT_POSTFIELDS         发送POST时，可以发的参数内容
</pre></div>
        <a href="../classes/tfc.util.Ral.html" class="more">« More »</a>    </div>

                                        <div id="class_Zip" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Zip .collapse">
        <h1>Zip<a href="../classes/tfc.util.Zip.html">¶</a></h1>
        <p class="short_description">Zip class file
ZIP方式压缩和解压文件，支持Linux(Shell实现)和WINNT(WinRAR.exe实现)系统</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Zip.html" class="more">« More »</a>    </div>

                                        <div id="class_Encoder" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Encoder .collapse">
        <h1>Encoder<a href="../classes/tfc.util.Encoder.html">¶</a></h1>
        <p class="short_description">Encoder class file
字符编码处理类，只处理GBK或UTF-8编码</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Encoder.html" class="more">« More »</a>    </div>

                                        <div id="class_Smtp" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Smtp .collapse">
        <h1>Smtp<a href="../classes/tfc.util.Smtp.html">¶</a></h1>
        <p class="short_description">Smtp class file
简单邮件传输协议发送到邮件服务器（邮件传输代理MTA）</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.Smtp.html" class="more">« More »</a>    </div>

                                        <div id="class_FileManager" class="element ajax clickable class" data-toggle="collapse" data-target="#class_FileManager .collapse">
        <h1>FileManager<a href="../classes/tfc.util.FileManager.html">¶</a></h1>
        <p class="short_description">FileManager class file
文件管理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.util.FileManager.html" class="more">« More »</a>    </div>

                            </div>
            
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.mvc.html">mvc</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_Html" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Html .collapse">
        <h1>Html<a href="../classes/tfc.mvc.Html.html">¶</a></h1>
        <p class="short_description">Html class file
页面辅助类，帮助创建HTML Element</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.Html.html" class="more">« More »</a>    </div>

                                        <div id="class_Mvc" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Mvc .collapse">
        <h1>Mvc<a href="../classes/tfc.mvc.Mvc.html">¶</a></h1>
        <p class="short_description">Mvc class file
mvc包中类管理器</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.Mvc.html" class="more">« More »</a>    </div>

                                        <div id="class_InlineAction" class="element ajax clickable class" data-toggle="collapse" data-target="#class_InlineAction .collapse">
        <h1>InlineAction<a href="../classes/tfc.mvc.InlineAction.html">¶</a></h1>
        <p class="short_description">InlineAction class file
定义一个Action类，用来代替Controller类的Action方法</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.InlineAction.html" class="more">« More »</a>    </div>

                                        <div id="class_Router" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Router .collapse">
        <h1>Router<a href="../classes/tfc.mvc.Router.html">¶</a></h1>
        <p class="short_description">Router class file
路由器管理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.Router.html" class="more">« More »</a>    </div>

                                        <div id="class_Controller" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Controller .collapse">
        <h1>Controller<a href="../classes/tfc.mvc.Controller.html">¶</a></h1>
        <p class="short_description">Controller abstract class file
控制器基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.Controller.html" class="more">« More »</a>    </div>

                                        <div id="class_Widget" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Widget .collapse">
        <h1>Widget<a href="../classes/tfc.mvc.Widget.html">¶</a></h1>
        <p class="short_description">Widget abstract class file
页面装饰基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.Widget.html" class="more">« More »</a>    </div>

                                        <div id="class_Dispatcher" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Dispatcher .collapse">
        <h1>Dispatcher<a href="../classes/tfc.mvc.Dispatcher.html">¶</a></h1>
        <p class="short_description">Dispatcher class file
发报器类，实例化Controller类，并调用Action方法
必须先将Module目录设置成类自动加载目录，才可以使用此类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.Dispatcher.html" class="more">« More »</a>    </div>

                                        <div id="class_UrlManager" class="element ajax clickable class" data-toggle="collapse" data-target="#class_UrlManager .collapse">
        <h1>UrlManager<a href="../classes/tfc.mvc.UrlManager.html">¶</a></h1>
        <p class="short_description">UrlManager class file
URL管理类，根据路由规则生成URL</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.UrlManager.html" class="more">« More »</a>    </div>

                                        <div id="class_Action" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Action .collapse">
        <h1>Action<a href="../classes/tfc.mvc.Action.html">¶</a></h1>
        <p class="short_description">Action abstract class file
Action基类，辅助分解Controller类业务，将Controller业务化整为零，方便管理和重用</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.Action.html" class="more">« More »</a>    </div>

                                        <div id="class_View" class="element ajax clickable class" data-toggle="collapse" data-target="#class_View .collapse">
        <h1>View<a href="../classes/tfc.mvc.View.html">¶</a></h1>
        <p class="short_description">View class file
模板解析类，用于分离业务层和展现层</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.View.html" class="more">« More »</a>    </div>

                            </div>
            
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.mvc.html">mvc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.mvc.routes.html">routes</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_RouteSimple" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RouteSimple .collapse">
        <h1>RouteSimple<a href="../classes/tfc.mvc.routes.RouteSimple.html">¶</a></h1>
        <p class="short_description">RouteSimple class file
简单路由</p>
        <div class="details collapse"><p>简单路由例子：
URL：<a href="http://domain.com/index.php?c=archive&amp;a=show">http://domain.com/index.php?c=archive&amp;a=show</a></p>
<pre>
$route = new RouteSimple('c', 'a', 'm');
$value = array(
    'module'     => '默认模型',
    'controller' => 'archive',
    'action'     => 'show'
);
</pre></div>
        <a href="../classes/tfc.mvc.routes.RouteSimple.html" class="more">« More »</a>    </div>

                                        <div id="class_RouteRegex" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RouteRegex .collapse">
        <h1>RouteRegex<a href="../classes/tfc.mvc.routes.RouteRegex.html">¶</a></h1>
        <p class="short_description">RouteRegex class file
正则路由</p>
        <div class="details collapse"><p>一.正则路由例子：
URL：<a href="http://domain.com/archive/2012">http://domain.com/archive/2012</a></p>
<pre>
$route = new RouteRegex(
    'archive/(\d+)',
    array(
        'controller' => 'archive',
        'action'     => 'show'
    )
);
$value = array(
    'controller' => 'archive',
    'action'     => 'show',
    1            => '2012'
);
</pre>
<p>二.上面例子中整数键不容易管理，下面方式解决：</p>
<pre>
$route = new RouteRegex(
    'archive/(\d+)',
    array(
        'controller' => 'archive',
        'action'     => 'show'
    ),
    array(
        1 => 'year'
    )
);
$value = array(
    'controller' => 'archive',
    'action'     => 'show',
    'year'       => '2012'
);
</pre>
<p>三.如果URL的地址是：<a href="http://domain.com/archive，即后面缺省2012时，下面方式解决">http://domain.com/archive，即后面缺省2012时，下面方式解决</a>：</p>
<pre>
$route = new RouteRegex(
    'archive(?:/(\d+))?',
    array(
        1            => '2012',
        'controller' => 'archive',
        'action'     => 'show'
    ),
    array(
        1 => 'year'
    )
);
$value = array(
    'controller' => 'archive',
    'action'     => 'show',
    'year'       => '2012'
);
</pre>
<p>四.URL中有多个匹配：
URL：<a href="http://domain.com/iphper/page/8">http://domain.com/iphper/page/8</a></p>
<pre>
$route = new RouteRegex(
    '(\w+)/page/(\d+)',
    array(
        'controller' => 'profile',
        'action'     => 'userinfo'
    ),
    array(
        2 => 'page'
    )
);
$value = array(
    'controller' => 'profile',
    'action'     => 'userinfo',
    1            => 'iphper',
    'page'       => '8'
);
</pre>
<p>五.URL中有多个参数：
URL：<a href="http://domain.com/archive/2012/username/iphper/page/2">http://domain.com/archive/2012/username/iphper/page/2</a></p>
<pre>
$route = new RouteRegex(
    'archive/(\d+)',
    array(
        'controller' => 'archive',
        'action'     => 'show'
    ),
    array(
        2 => 'page'
    )
);
$value = array(
    'controller' => 'archive',
    'action'     => 'show',
    1            => '2012',
    'username'   => 'iphper',
    'page'       => '2'
);
</pre></div>
        <a href="../classes/tfc.mvc.routes.RouteRegex.html" class="more">« More »</a>    </div>

                                        <div id="class_RouteRewrite" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RouteRewrite .collapse">
        <h1>RouteRewrite<a href="../classes/tfc.mvc.routes.RouteRewrite.html">¶</a></h1>
        <p class="short_description">RouteRewrite class file
标准路由</p>
        <div class="details collapse"><p>一.标准路由例子：
URL：<a href="http://domain.com/author/iphper">http://domain.com/author/iphper</a></p>
<pre>
$route = new RouteRewrite(
    'author/:username',
    array(
        'controller' => 'profile',
        'action'     => 'userinfo'
    )
);
$value = array(
    'controller' => 'profile',
    'action'     => 'userinfo',
    'username'   => 'iphper'
);
</pre>
<p>二.规则匹配：
URL：<a href="http://domain.com/archive/2012">http://domain.com/archive/2012</a></p>
<pre>
$route = new RouteRewrite(
    'archive/:year',
    array(
        'controller' => 'archive',
        'action'     => 'show'
    ),
    array(
        'year'    => '\d+'
    )
);
$value = array(
    'controller' => 'archive',
    'action'     => 'show',
    'year'       => '2012'
);
如果URL：http://domain.com/archive/test，将不匹配，并且尝试匹配下一个路由
</pre>
<p>三.有缺省值时，规则匹配：
URL：<a href="http://domain.com/archive">http://domain.com/archive</a></p>
<pre>
$route = new RouteRewrite(
    'archive/:year',
    array(
        'year'       => '2012',    // 缺省值
        'controller' => 'archive',
        'action'     => 'show'
    )
);
$value = array(
    'year'       => '2012',
    'controller' => 'archive',
    'action'     => 'show'
);
</pre>
<p>四.模仿模块路由：
URL：<a href="http://domain.com/passport/profile/userinfo/username/iphper">http://domain.com/passport/profile/userinfo/username/iphper</a></p>
<pre>
$route = new RouteRewrite(
    ':module/:controller/:action/*',
    array(
       'module' => 'default'    // 缺省值
    )
);
$value = array(
    'module'     => 'passport',
    'controller' => 'profile',
    'action'     => 'userinfo',
    'username'   => 'iphper'
);
如果URL：http://domain.com/archive/test，将不匹配，并且尝试匹配下一个路由
</pre></div>
        <a href="../classes/tfc.mvc.routes.RouteRewrite.html" class="more">« More »</a>    </div>

                                        <div id="class_RouteStatic" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RouteStatic .collapse">
        <h1>RouteStatic<a href="../classes/tfc.mvc.routes.RouteStatic.html">¶</a></h1>
        <p class="short_description">RouteStatic class file
静态路由</p>
        <div class="details collapse"><p>静态路由例子：
URL：<a href="http://domain.com/login">http://domain.com/login</a></p>
<pre>
$route = new RouteStatic(
    'login',
    array(
        'module'     => 'main',
        'controller' => 'auth',
        'action'     => 'login'
    )
);
$value = array(
    'module'     => 'main',
    'controller' => 'auth',
    'action'     => 'login'
);
</pre></div>
        <a href="../classes/tfc.mvc.routes.RouteStatic.html" class="more">« More »</a>    </div>

                                        <div id="class_Route" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Route .collapse">
        <h1>Route<a href="../classes/tfc.mvc.routes.Route.html">¶</a></h1>
        <p class="short_description">Route abstract class file
路由器基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.routes.Route.html" class="more">« More »</a>    </div>

                                        <div id="class_RouteSupervar" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RouteSupervar .collapse">
        <h1>RouteSupervar<a href="../classes/tfc.mvc.routes.RouteSupervar.html">¶</a></h1>
        <p class="short_description">RouteSupervar class file
默认路由</p>
        <div class="details collapse"><p>一.默认路由例子：
URL：<a href="http://domain.com/index.php?r=archive/show">http://domain.com/index.php?r=archive/show</a></p>
<pre>
$route = new RouteSupervar('r');
$value = array(
    'module'     => '默认模型',
    'controller' => 'archive',
    'action'     => 'show'
);
</pre>
<p>二.默认路由例子：
URL：<a href="http://domain.com/index.php?r=main/archive/show">http://domain.com/index.php?r=main/archive/show</a></p>
<pre>
$route = new RouteSupervar('r');
$value = array(
    'module'     => 'main',
    'controller' => 'archive',
    'action'     => 'show'
);
</pre>
<p>三.默认路由例子：
URL：<a href="http://domain.com/index.php?r=archive">http://domain.com/index.php?r=archive</a></p>
<pre>
$route = new RouteSupervar('r');
$value = array(
    'module'     => '默认模型',
    'controller' => 'archive',
    'action'     => '默认方法'
);
</pre></div>
        <a href="../classes/tfc.mvc.routes.RouteSupervar.html" class="more">« More »</a>    </div>

                            </div>
            
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.mvc.html">mvc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.mvc.form.html">form</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_ButtonElement" class="element ajax clickable class" data-toggle="collapse" data-target="#class_ButtonElement .collapse">
        <h1>ButtonElement<a href="../classes/tfc.mvc.form.ButtonElement.html">¶</a></h1>
        <p class="short_description">ButtonElement class file
按钮类表单元素</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.form.ButtonElement.html" class="more">« More »</a>    </div>

                                        <div id="class_Element" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Element .collapse">
        <h1>Element<a href="../classes/tfc.mvc.form.Element.html">¶</a></h1>
        <p class="short_description">Element abstract class file
表单元素基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.form.Element.html" class="more">« More »</a>    </div>

                                        <div id="class_FormBuilder" class="element ajax clickable class" data-toggle="collapse" data-target="#class_FormBuilder .collapse">
        <h1>FormBuilder<a href="../classes/tfc.mvc.form.FormBuilder.html">¶</a></h1>
        <p class="short_description">FormBuilder abstract class file
表单处理基类，需要加载模板文件才能生成表单</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.form.FormBuilder.html" class="more">« More »</a>    </div>

                                        <div id="class_InputElement" class="element ajax clickable class" data-toggle="collapse" data-target="#class_InputElement .collapse">
        <h1>InputElement<a href="../classes/tfc.mvc.form.InputElement.html">¶</a></h1>
        <p class="short_description">InputElement class file
输入框类表单元素</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.form.InputElement.html" class="more">« More »</a>    </div>

                            </div>
            
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.mvc.html">mvc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.mvc.interfaces.html">interfaces</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                                        <div id="interface_View" class="element ajax clickable interface" data-toggle="collapse" data-target="#interface_View .collapse">
        <h1>View<a href="../classes/tfc.mvc.interfaces.View.html">¶</a></h1>
        <p class="short_description">View interface file
模板解析接口，用于分离业务层和展现层</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.interfaces.View.html" class="more">« More »</a>    </div>

                                        <div id="interface_Action" class="element ajax clickable interface" data-toggle="collapse" data-target="#interface_Action .collapse">
        <h1>Action<a href="../classes/tfc.mvc.interfaces.Action.html">¶</a></h1>
        <p class="short_description">Action interface file
Action接口，辅助分解Controller类业务，将Controller业务化整为零，方便管理和重用</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.mvc.interfaces.Action.html" class="more">« More »</a>    </div>

                
                            </div>
            
    
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.saf.html">saf</a>
    </li>

        </ul>

                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-function"></i> Functions</h3>
                                        <div id="function_spl_autoload" class="element ajax clickable function" data-toggle="collapse" data-target="#function_spl_autoload .collapse">
        <h1>spl_autoload<a href="../namespaces/tfc.saf.html#function_spl_autoload">¶</a></h1>
        <p class="short_description">自动加载PHP文件</p>
        <div class="details collapse"></div>
        <a href="../namespaces/tfc.saf.html#function_spl_autoload" class="more">« More »</a>    </div>

                                        <div id="function_debug_dump" class="element ajax clickable function" data-toggle="collapse" data-target="#function_debug_dump .collapse">
        <h1>debug_dump<a href="../namespaces/tfc.saf.html#function_debug_dump">¶</a></h1>
        <p class="short_description">测试打印数据，只有DEBUG或者强制的时候才输出</p>
        <div class="details collapse"></div>
        <a href="../namespaces/tfc.saf.html#function_debug_dump" class="more">« More »</a>    </div>

                                        <div id="function_debug_print_r" class="element ajax clickable function" data-toggle="collapse" data-target="#function_debug_print_r .collapse">
        <h1>debug_print_r<a href="../namespaces/tfc.saf.html#function_debug_print_r">¶</a></h1>
        <p class="short_description">测试打印数据，只有DEBUG或者强制的时候才输出</p>
        <div class="details collapse"></div>
        <a href="../namespaces/tfc.saf.html#function_debug_print_r" class="more">« More »</a>    </div>

                            </div>
        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_Cookie" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Cookie .collapse">
        <h1>Cookie<a href="../classes/tfc.saf.Cookie.html">¶</a></h1>
        <p class="short_description">Cookie class file
Cookie管理类，所有的Cookie都应该加密后保存</p>
        <div class="details collapse"><p>配置 /cfg/app/appname/main.php：</p>
<pre>
return array (
  'cookie' => array (
     'key_name' => 'authentication', // 密钥配置名
     'domain' => '.trotri.com',      // Cookie的有效域名，缺省：当前域名
     'path' => '/',                  // Cookie的有效服务器路径，缺省：/
     'secure' => false,              // FALSE：HTTP和HTTPS协议都可传输；TRUE：只通过加密的HTTPS协议传输，缺省：FALSE
     'httponly' => true,             // TRUE：只能通过HTTP协议访问；FALSE：HTTP协议和脚本语言都可访问，容易造成XSS攻击，缺省：TRUE
  ),
);
</pre></div>
        <a href="../classes/tfc.saf.Cookie.html" class="more">« More »</a>    </div>

                                        <div id="class_Mef" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Mef .collapse">
        <h1>Mef<a href="../classes/tfc.saf.Mef.html">¶</a></h1>
        <p class="short_description">Mef class file
可逆的加密算法管理类，Mcrypt Encryption Functions</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.saf.Mef.html" class="more">« More »</a>    </div>

                                        <div id="class_Text" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Text .collapse">
        <h1>Text<a href="../classes/tfc.saf.Text.html">¶</a></h1>
        <p class="short_description">Text class file
当前项目的语言国际化管理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.saf.Text.html" class="more">« More »</a>    </div>

                                        <div id="class_UpProxy" class="element ajax clickable class" data-toggle="collapse" data-target="#class_UpProxy .collapse">
        <h1>UpProxy<a href="../classes/tfc.saf.UpProxy.html">¶</a></h1>
        <p class="short_description">UpProxy class file
上传代理操作类</p>
        <div class="details collapse"><p>配置 /cfg/app/appname/main.php：</p>
<pre>
return array (
  'upload' => array(
    'posts' => array(
      'directory' => 'imgs/thumb', // 上传目录名，在根目录：DIR_DATA_UPLOAD下，如：DIR_DATA_UPLOAD . '/imgs/thumb'
      'name_pre' => '',
      'name_rule' => 0, // 保存文件时的命名规则，0：原文件名、1：随机整数格式、2：随机字符串格式、3：日期和时间格式、4：日期和时间+随机整数格式、5：日期和时间+随机字符串格式、6：时间戳格式、7：时间戳+随机整数格式、8：时间戳+随机字符串格式
      'dir_rule' => 'Ym/d', // 目录名规则，由日期时间组成，如：DIR_DATA_UPLOAD . '/imgs/thumb/201410/04'
      'max_size' => 2097152, // 允许上传的文件大小最大值，单位：字节
      'allow_types' => array(
        'image/pjpeg',
        'image/jpeg',
        'image/gif',
        'image/png',
        'image/xpng',
        'image/wbmp',
        'image/bmp',
        'image/x-png'
      ),
      'allow_exts' => 'jpg|gif|png|bmp|zip|rar',
      'allow_replace_exists' => false, // 如果保存文件的地址已经存在其他文件，是否允许替换
      'dt_format' => 'YmdHis',
      'join_str' => '_',
      'rand_min' => 10000,
      'rand_max' => 99999,
      'rand_strlen' => 16 // 8 ~ 32之间
    ),
    'sysbatch' => array(
      ...
    ),
  ),
)
</pre></div>
        <a href="../classes/tfc.saf.UpProxy.html" class="more">« More »</a>    </div>

                                        <div id="class_Keys" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Keys .collapse">
        <h1>Keys<a href="../classes/tfc.saf.Keys.html">¶</a></h1>
        <p class="short_description">Keys class file
密钥管理类</p>
        <div class="details collapse"><p>配置 /cfg/key/cluster.php：</p>
<pre>
return array (
  'authentication' => array (
    'crypt' => string,   // 加密密钥
    'sign' => string,    // 签名密钥
    'expiry' => integer, // 缺省的密文有效期，如果等于0，表示永久有效，单位：秒
    'rnd_len' => integer // 随机密钥长度，取值 0-32
  ),
  'site' => array (
    'crypt' => string,   // 加密密钥
    'sign' => string,    // 签名密钥
    'expiry' => integer, // 缺省的密文有效期，如果等于0，表示永久有效，单位：秒
    'rnd_len' => integer // 随机密钥长度，取值 0-32
  )
);
</pre></div>
        <a href="../classes/tfc.saf.Keys.html" class="more">« More »</a>    </div>

                                        <div id="class_DbProxy" class="element ajax clickable class" data-toggle="collapse" data-target="#class_DbProxy .collapse">
        <h1>DbProxy<a href="../classes/tfc.saf.DbProxy.html">¶</a></h1>
        <p class="short_description">DbProxy class file
数据库代理操作类，连接失败尝试重试、记录操作日志、主从数据库连接管理（待扩展）</p>
        <div class="details collapse"><p>配置 /cfg/db/cluster.php：</p>
<pre>
return array (
  'service' => array (
    'dsn' => string,      // Data Source Name
    'username' => string, // 数据库用户名
    'password' => string, // 数据库密码
    'charset' => string,  // 数据库字符编码
    'retry' => integer,   // 连接数据库失败后，尝试重连的最大次数
    'tblprefix' => string // 表前缀
  ),
  'administrator' => array (
    'dsn' => 'mysql:host=localhost;dbname=trotri',
    'username' => 'root',
    'password' => '123456',
    'charset' => 'utf8',
    'retry' => 3,
    'tblprefix' => 'tr_'
  ),
);
</pre></div>
        <a href="../classes/tfc.saf.DbProxy.html" class="more">« More »</a>    </div>

                                        <div id="class_Log" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Log .collapse">
        <h1>Log<a href="../classes/tfc.saf.Log.html">¶</a></h1>
        <p class="short_description">Log class file
日志处理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.saf.Log.html" class="more">« More »</a>    </div>

                                        <div id="class_RalProxy" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RalProxy .collapse">
        <h1>RalProxy<a href="../classes/tfc.saf.RalProxy.html">¶</a></h1>
        <p class="short_description">RalProxy class file
Ral代理操作类，调用CURL失败重试、记录操作日志、负载均衡管理（待扩展）</p>
        <div class="details collapse"><p>配置 /cfg/ral/cluster.php：</p>
<pre>
return array (
  'administrator' => array (
    'server' => string,               // 服务器IP地址
    'port' => integer,                // 服务器端口号
    'connect_time_out_ms' => integer, // 链接超时：毫秒
    'time_out_ms' => integer,         // 执行超时：毫秒
    'converter' => string,            // 执行后返回数据类型
    'retry' => integer,               // 重试次数
  ),
  'site' => array (
    'server' => '127.0.0.1',
    'port' => 80,
    'connect_time_out_ms' => 200,
    'time_out_ms' => 500,
    'converter' => 'json',
    'retry' => 1,
  ),
);
</pre></div>
        <a href="../classes/tfc.saf.RalProxy.html" class="more">« More »</a>    </div>

                                        <div id="class_Cfg" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Cfg .collapse">
        <h1>Cfg<a href="../classes/tfc.saf.Cfg.html">¶</a></h1>
        <p class="short_description">Cfg class file
获取配置类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.saf.Cfg.html" class="more">« More »</a>    </div>

                            </div>
            
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.validator.html">validator</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_Filter" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Filter .collapse">
        <h1>Filter<a href="../classes/tfc.validator.Filter.html">¶</a></h1>
        <p class="short_description">Filter class file
数据验证类</p>
        <div class="details collapse"><p>验证规则：</p>
<pre>
$rules = array(
    'user_loginname' => array(
        'MinLength' => array(6, '用户名长度%value%不能小于%option%个字符.'),
        'MaxLength' => array(12, '用户名长度%value%不能大于%option%个字符.')
    ),
    'user_password' => array(
        'tfc\\validator\\MinLengthValidator' => array(6, '密码长度%value%不能小于%option%个字符.'),
        'MaxLength' => array(12, '密码长度%value%不能大于%option%个字符.')
    ),
    'user_email' => array(
        'MaxLength' => array(50, '邮箱长度%value%不能大于%option%个字符.'),
        'Mail' => array(true, '邮箱%value%不符合规范.')
    ),
);

$params = array(
    'user_loginname' => 'abcdefghi',
    'user_password' => '1234',
    'user_email' => 'trotriyeahnet'
);

$filter = new Filter();
$result = $filter->run($rules, $params);
$errors = $filter->getErrors();
结果：
$errors = array(
    'user_password' => '密码长度1234不能小于6个字符.',
    'user_email' => array('邮箱长度trotriyeahnet...不能大于50个字符.', '邮箱iphperyeahnet...不符合规范.')
);
</pre></div>
        <a href="../classes/tfc.validator.Filter.html" class="more">« More »</a>    </div>

                                        <div id="class_NotEmptyValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_NotEmptyValidator .collapse">
        <h1>NotEmptyValidator<a href="../classes/tfc.validator.NotEmptyValidator.html">¶</a></h1>
        <p class="short_description">NotEmptyValidator class file
验证一个值是否不为空</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.NotEmptyValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_RegexValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RegexValidator .collapse">
        <h1>RegexValidator<a href="../classes/tfc.validator.RegexValidator.html">¶</a></h1>
        <p class="short_description">RegexValidator class file
验证正则表达式</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.RegexValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_DbExists2Validator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_DbExists2Validator .collapse">
        <h1>DbExists2Validator<a href="../classes/tfc.validator.DbExists2Validator.html">¶</a></h1>
        <p class="short_description">DbExists2Validator class file
验证值是否在数据库表中是否存在</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.DbExists2Validator.html" class="more">« More »</a>    </div>

                                        <div id="class_EqualToValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_EqualToValidator .collapse">
        <h1>EqualToValidator<a href="../classes/tfc.validator.EqualToValidator.html">¶</a></h1>
        <p class="short_description">EqualToValidator class file
验证值是否等于RGP中的值</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.EqualToValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_IpValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_IpValidator .collapse">
        <h1>IpValidator<a href="../classes/tfc.validator.IpValidator.html">¶</a></h1>
        <p class="short_description">IpValidator class file
验证IP地址</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.IpValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_Validator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Validator .collapse">
        <h1>Validator<a href="../classes/tfc.validator.Validator.html">¶</a></h1>
        <p class="short_description">Validator abstract class file
数据验证基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.Validator.html" class="more">« More »</a>    </div>

                                        <div id="class_PhoneValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_PhoneValidator .collapse">
        <h1>PhoneValidator<a href="../classes/tfc.validator.PhoneValidator.html">¶</a></h1>
        <p class="short_description">PhoneValidator class file
验证中国大陆手机号</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.PhoneValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_NonNegativeIntegerValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_NonNegativeIntegerValidator .collapse">
        <h1>NonNegativeIntegerValidator<a href="../classes/tfc.validator.NonNegativeIntegerValidator.html">¶</a></h1>
        <p class="short_description">NonNegativeIntegerValidator class file
验证一个值是否是非负整型</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.NonNegativeIntegerValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_NumericValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_NumericValidator .collapse">
        <h1>NumericValidator<a href="../classes/tfc.validator.NumericValidator.html">¶</a></h1>
        <p class="short_description">NumericValidator class file
验证一个值是否是数字类型</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.NumericValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_UrlValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_UrlValidator .collapse">
        <h1>UrlValidator<a href="../classes/tfc.validator.UrlValidator.html">¶</a></h1>
        <p class="short_description">UrlValidator class file
验证Url</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.UrlValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_NotEqualValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_NotEqualValidator .collapse">
        <h1>NotEqualValidator<a href="../classes/tfc.validator.NotEqualValidator.html">¶</a></h1>
        <p class="short_description">NotEqualValidator class file
验证两个值是否不相等</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.NotEqualValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_FloatValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_FloatValidator .collapse">
        <h1>FloatValidator<a href="../classes/tfc.validator.FloatValidator.html">¶</a></h1>
        <p class="short_description">FloatValidator class file
验证一个值是否浮点型</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.FloatValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_EqualValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_EqualValidator .collapse">
        <h1>EqualValidator<a href="../classes/tfc.validator.EqualValidator.html">¶</a></h1>
        <p class="short_description">EqualValidator class file
验证两个值是否相等</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.EqualValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_AlphaNumValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_AlphaNumValidator .collapse">
        <h1>AlphaNumValidator<a href="../classes/tfc.validator.AlphaNumValidator.html">¶</a></h1>
        <p class="short_description">AlphaNumValidator class file
验证英文字母数字和下划线组合</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.AlphaNumValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_RequireValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RequireValidator .collapse">
        <h1>RequireValidator<a href="../classes/tfc.validator.RequireValidator.html">¶</a></h1>
        <p class="short_description">RequireValidator class file
验证是否是安全的可被require的文件</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.RequireValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_MaxValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_MaxValidator .collapse">
        <h1>MaxValidator<a href="../classes/tfc.validator.MaxValidator.html">¶</a></h1>
        <p class="short_description">MaxValidator class file
验证值是否小于指定值</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.MaxValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_DateTimeValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_DateTimeValidator .collapse">
        <h1>DateTimeValidator<a href="../classes/tfc.validator.DateTimeValidator.html">¶</a></h1>
        <p class="short_description">DateTimeValidator class file
验证日期时间
日期时间需要大于1901-12-14 04:51:49</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.DateTimeValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_IntegerValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_IntegerValidator .collapse">
        <h1>IntegerValidator<a href="../classes/tfc.validator.IntegerValidator.html">¶</a></h1>
        <p class="short_description">IntegerValidator class file
验证一个值是否是正整型</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.IntegerValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_AlphaValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_AlphaValidator .collapse">
        <h1>AlphaValidator<a href="../classes/tfc.validator.AlphaValidator.html">¶</a></h1>
        <p class="short_description">AlphaValidator class file
验证英文字母</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.AlphaValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_DbExistsValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_DbExistsValidator .collapse">
        <h1>DbExistsValidator<a href="../classes/tfc.validator.DbExistsValidator.html">¶</a></h1>
        <p class="short_description">DbExistsValidator class file
验证值是否在数据库表中是否存在</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.DbExistsValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_MaxLengthValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_MaxLengthValidator .collapse">
        <h1>MaxLengthValidator<a href="../classes/tfc.validator.MaxLengthValidator.html">¶</a></h1>
        <p class="short_description">MaxLengthValidator class file
验证字符长度是否小于指定长度</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.MaxLengthValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_MinLengthValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_MinLengthValidator .collapse">
        <h1>MinLengthValidator<a href="../classes/tfc.validator.MinLengthValidator.html">¶</a></h1>
        <p class="short_description">MinLengthValidator class file
验证字符长度是否大于指定长度</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.MinLengthValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_MinValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_MinValidator .collapse">
        <h1>MinValidator<a href="../classes/tfc.validator.MinValidator.html">¶</a></h1>
        <p class="short_description">MinValidator class file
验证值是否大于指定值</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.MinValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_InArrayValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_InArrayValidator .collapse">
        <h1>InArrayValidator<a href="../classes/tfc.validator.InArrayValidator.html">¶</a></h1>
        <p class="short_description">InArrayValidator class file
验证值在数组中是否存在</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.InArrayValidator.html" class="more">« More »</a>    </div>

                                        <div id="class_MailValidator" class="element ajax clickable class" data-toggle="collapse" data-target="#class_MailValidator .collapse">
        <h1>MailValidator<a href="../classes/tfc.validator.MailValidator.html">¶</a></h1>
        <p class="short_description">MailValidator class file
验证邮箱</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.validator.MailValidator.html" class="more">« More »</a>    </div>

                            </div>
            
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.db.html">db</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_ColumnSchema" class="element ajax clickable class" data-toggle="collapse" data-target="#class_ColumnSchema .collapse">
        <h1>ColumnSchema<a href="../classes/tfc.db.ColumnSchema.html">¶</a></h1>
        <p class="short_description">ColumnSchema class file
寄存数据库列的概要描述，包含列名、是否允许为空、数据库式类型、PHP语言式类型、是否是主键、默认值等
&lt;ul&gt;
&lt;li&gt;{@link $name}&lt;/li&gt;
&lt;li&gt;{@link $allowNull}&lt;/li&gt;
&lt;li&gt;{@link $dbType}&lt;/li&gt;
&lt;li&gt;{@link $type}&lt;/li&gt;
&lt;li&gt;{@link $defaultValue}&lt;/li&gt;
&lt;li&gt;{@link $size}&lt;/li&gt;
&lt;li&gt;{@link $scale}&lt;/li&gt;
&lt;li&gt;{@link $isPrimaryKey}&lt;/li&gt;
&lt;li&gt;{@link $isForeignKey}&lt;/li&gt;
&lt;li&gt;{@link $isAutoIncrement}&lt;/li&gt;
&lt;/ul&gt;</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.db.ColumnSchema.html" class="more">« More »</a>    </div>

                                        <div id="class_Transaction" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Transaction .collapse">
        <h1>Transaction<a href="../classes/tfc.db.Transaction.html">¶</a></h1>
        <p class="short_description">Transaction class file
PDO事务处理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.db.Transaction.html" class="more">« More »</a>    </div>

                                        <div id="class_Driver" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Driver .collapse">
        <h1>Driver<a href="../classes/tfc.db.Driver.html">¶</a></h1>
        <p class="short_description">Driver class file
PDO方式连接数据库</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.db.Driver.html" class="more">« More »</a>    </div>

                                        <div id="class_TableSchema" class="element ajax clickable class" data-toggle="collapse" data-target="#class_TableSchema .collapse">
        <h1>TableSchema<a href="../classes/tfc.db.TableSchema.html">¶</a></h1>
        <p class="short_description">TableSchema class file
寄存数据库表的概要描述，包含表名、主键、表的自增字段、字段名、字段默认值等
&lt;ul&gt;
&lt;li&gt;{@link $name}&lt;/li&gt;
&lt;li&gt;{@link $primaryKey}&lt;/li&gt;
&lt;li&gt;{@link $autoIncrement}&lt;/li&gt;
&lt;li&gt;{@link $columnNames}&lt;/li&gt;
&lt;li&gt;{@link $columns}&lt;/li&gt;
&lt;li&gt;{@link $attributeDefaults}&lt;/li&gt;
&lt;/ul&gt;</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.db.TableSchema.html" class="more">« More »</a>    </div>

                                        <div id="class_Statement" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Statement .collapse">
        <h1>Statement<a href="../classes/tfc.db.Statement.html">¶</a></h1>
        <p class="short_description">Statement class file
PDO方式预处理并执行SQL</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.db.Statement.html" class="more">« More »</a>    </div>

                            </div>
            
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.ap.html">ap</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_Singleton" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Singleton .collapse">
        <h1>Singleton<a href="../classes/tfc.ap.Singleton.html">¶</a></h1>
        <p class="short_description">Singleton class file
单例管理类，通过类名获取类的实例，并且保证在一次PHP的运行周期内只创建一次实例</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Singleton.html" class="more">« More »</a>    </div>

                                        <div id="class_Event" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Event .collapse">
        <h1>Event<a href="../classes/tfc.ap.Event.html">¶</a></h1>
        <p class="short_description">Event abstract class file
observer模式的事件基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Event.html" class="more">« More »</a>    </div>

                                        <div id="class_Ap" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Ap .collapse">
        <h1>Ap<a href="../classes/tfc.ap.Ap.html">¶</a></h1>
        <p class="short_description">Ap class file
ap包中类管理器</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Ap.html" class="more">« More »</a>    </div>

                                        <div id="class_HttpCookie" class="element ajax clickable class" data-toggle="collapse" data-target="#class_HttpCookie .collapse">
        <h1>HttpCookie<a href="../classes/tfc.ap.HttpCookie.html">¶</a></h1>
        <p class="short_description">HttpCookie class file
HTTPCookie管理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.HttpCookie.html" class="more">« More »</a>    </div>

                                        <div id="class_InvalidArgumentException" class="element ajax clickable class" data-toggle="collapse" data-target="#class_InvalidArgumentException .collapse">
        <h1>InvalidArgumentException<a href="../classes/tfc.ap.InvalidArgumentException.html">¶</a></h1>
        <p class="short_description">InvalidArgumentException class file
实际结果与预期结果不匹配发生的异常</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.InvalidArgumentException.html" class="more">« More »</a>    </div>

                                        <div id="class_Response" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Response .collapse">
        <h1>Response<a href="../classes/tfc.ap.Response.html">¶</a></h1>
        <p class="short_description">Response abstract class file
响应模式发送基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Response.html" class="more">« More »</a>    </div>

                                        <div id="class_UserIdentity" class="element ajax clickable class" data-toggle="collapse" data-target="#class_UserIdentity .collapse">
        <h1>UserIdentity<a href="../classes/tfc.ap.UserIdentity.html">¶</a></h1>
        <p class="short_description">UserIdentity class file
用户身份管理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.UserIdentity.html" class="more">« More »</a>    </div>

                                        <div id="class_HttpRequest" class="element ajax clickable class" data-toggle="collapse" data-target="#class_HttpRequest .collapse">
        <h1>HttpRequest<a href="../classes/tfc.ap.HttpRequest.html">¶</a></h1>
        <p class="short_description">HttpRequest class file
HTTP请求模式处理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.HttpRequest.html" class="more">« More »</a>    </div>

                                        <div id="class_Registry" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Registry .collapse">
        <h1>Registry<a href="../classes/tfc.ap.Registry.html">¶</a></h1>
        <p class="short_description">Registry class file
全局数据寄存类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Registry.html" class="more">« More »</a>    </div>

                                        <div id="class_Cache" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Cache .collapse">
        <h1>Cache<a href="../classes/tfc.ap.Cache.html">¶</a></h1>
        <p class="short_description">Cache abstract class file
缓存数据基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Cache.html" class="more">« More »</a>    </div>

                                        <div id="class_HttpResponse" class="element ajax clickable class" data-toggle="collapse" data-target="#class_HttpResponse .collapse">
        <h1>HttpResponse<a href="../classes/tfc.ap.HttpResponse.html">¶</a></h1>
        <p class="short_description">HttpResponse class file
HTTP响应模式发送类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.HttpResponse.html" class="more">« More »</a>    </div>

                                        <div id="class_Bootstrap" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Bootstrap .collapse">
        <h1>Bootstrap<a href="../classes/tfc.ap.Bootstrap.html">¶</a></h1>
        <p class="short_description">Bootstrap abstract class file
程序引导类，在项目入口处执行，会依次执行类中以_init开头的方法，初始化项目参数</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Bootstrap.html" class="more">« More »</a>    </div>

                                        <div id="class_RuntimeException" class="element ajax clickable class" data-toggle="collapse" data-target="#class_RuntimeException .collapse">
        <h1>RuntimeException<a href="../classes/tfc.ap.RuntimeException.html">¶</a></h1>
        <p class="short_description">RuntimeException class file
程序运行时发生的异常</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.RuntimeException.html" class="more">« More »</a>    </div>

                                        <div id="class_HttpSession" class="element ajax clickable class" data-toggle="collapse" data-target="#class_HttpSession .collapse">
        <h1>HttpSession<a href="../classes/tfc.ap.HttpSession.html">¶</a></h1>
        <p class="short_description">HttpSession class file
HTTP会话管理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.HttpSession.html" class="more">« More »</a>    </div>

                                        <div id="class_ErrorException" class="element ajax clickable class" data-toggle="collapse" data-target="#class_ErrorException .collapse">
        <h1>ErrorException<a href="../classes/tfc.ap.ErrorException.html">¶</a></h1>
        <p class="short_description">ErrorException class file
错误异常</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.ErrorException.html" class="more">« More »</a>    </div>

                                        <div id="class_Application" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Application .collapse">
        <h1>Application<a href="../classes/tfc.ap.Application.html">¶</a></h1>
        <p class="short_description">Application abstract class file
框架所有应用类的基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Application.html" class="more">« More »</a>    </div>

                                        <div id="class_PDOException" class="element ajax clickable class" data-toggle="collapse" data-target="#class_PDOException .collapse">
        <h1>PDOException<a href="../classes/tfc.ap.PDOException.html">¶</a></h1>
        <p class="short_description">PDOException class file
PDO操作数据库时发生的异常</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.PDOException.html" class="more">« More »</a>    </div>

                                        <div id="class_Request" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Request .collapse">
        <h1>Request<a href="../classes/tfc.ap.Request.html">¶</a></h1>
        <p class="short_description">Request abstract class file
请求模式处理基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.Request.html" class="more">« More »</a>    </div>

                                        <div id="class_EventDispatcher" class="element ajax clickable class" data-toggle="collapse" data-target="#class_EventDispatcher .collapse">
        <h1>EventDispatcher<a href="../classes/tfc.ap.EventDispatcher.html">¶</a></h1>
        <p class="short_description">EventDispatcher class file
observer模式的事件处理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.EventDispatcher.html" class="more">« More »</a>    </div>

                            </div>
            
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.ap.html">ap</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.ap.interfaces.html">interfaces</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                                        <div id="interface_Cache" class="element ajax clickable interface" data-toggle="collapse" data-target="#interface_Cache .collapse">
        <h1>Cache<a href="../classes/tfc.ap.interfaces.Cache.html">¶</a></h1>
        <p class="short_description">Cache interface file
缓存处理接口</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.interfaces.Cache.html" class="more">« More »</a>    </div>

                                        <div id="interface_SessionSaveHandler" class="element ajax clickable interface" data-toggle="collapse" data-target="#interface_SessionSaveHandler .collapse">
        <h1>SessionSaveHandler<a href="../classes/tfc.ap.interfaces.SessionSaveHandler.html">¶</a></h1>
        <p class="short_description">SessionSaveHandler interface file
用户自定义会话处理接口</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.ap.interfaces.SessionSaveHandler.html" class="more">« More »</a>    </div>

                
                            </div>
            
    
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.log.html">log</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_Log" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Log .collapse">
        <h1>Log<a href="../classes/tfc.log.Log.html">¶</a></h1>
        <p class="short_description">Log abstract class file
日志处理基类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.log.Log.html" class="more">« More »</a>    </div>

                                        <div id="class_LogDb" class="element ajax clickable class" data-toggle="collapse" data-target="#class_LogDb .collapse">
        <h1>LogDb<a href="../classes/tfc.log.LogDb.html">¶</a></h1>
        <p class="short_description">LogDb class file
数据库方式处理日志</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.log.LogDb.html" class="more">« More »</a>    </div>

                                        <div id="class_Logger" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Logger .collapse">
        <h1>Logger<a href="../classes/tfc.log.Logger.html">¶</a></h1>
        <p class="short_description">Logger class file
日志处理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.log.Logger.html" class="more">« More »</a>    </div>

                                        <div id="class_LogStream" class="element ajax clickable class" data-toggle="collapse" data-target="#class_LogStream .collapse">
        <h1>LogStream<a href="../classes/tfc.log.LogStream.html">¶</a></h1>
        <p class="short_description">LogStream class file
文本文件方式处理日志</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.log.LogStream.html" class="more">« More »</a>    </div>

                            </div>
            
    
                
    
        <ul class="breadcrumb">
            <li><a href="../index.html"><i class="icon-th"></i></a></li>
                
                
    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.html">tfc</a>
    </li>

    
    <li>
        <span class="divider">\</span><a href="../namespaces/tfc.auth.html">auth</a>
    </li>

        </ul>

        
        
                    <div class="namespace-indent">
                <h3><i class="icon-custom icon-class"></i> Classes, interfaces and traits</h3>
                
                
                                        <div id="class_Role" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Role .collapse">
        <h1>Role<a href="../classes/tfc.auth.Role.html">¶</a></h1>
        <p class="short_description">Role class file
用户角色类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.auth.Role.html" class="more">« More »</a>    </div>

                                        <div id="class_Identity" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Identity .collapse">
        <h1>Identity<a href="../classes/tfc.auth.Identity.html">¶</a></h1>
        <p class="short_description">Identity class file
用户身份管理类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.auth.Identity.html" class="more">« More »</a>    </div>

                                        <div id="class_Authentica" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Authentica .collapse">
        <h1>Authentica<a href="../classes/tfc.auth.Authentica.html">¶</a></h1>
        <p class="short_description">Authentica class file
用户身份认证类</p>
        <div class="details collapse"><p>配置 /cfg/app/appname/main.php：</p>
<pre>
return array (
  'account' => array (
    'key_name' => 'auth_administrator',      // 密钥配置名
    'domain' => '',                          // Cookie的有效域名，缺省：当前域名
    'path' => '/',                           // Cookie的有效服务器路径，缺省：/
    'secure' => false,                       // FALSE：HTTP和HTTPS协议都可传输；TRUE：只通过加密的HTTPS协议传输，缺省：FALSE
    'httponly' => true,                      // TRUE：只能通过HTTP协议访问；FALSE：HTTP协议和脚本语言都可访问，容易造成XSS攻击，缺省：TRUE
    'expiry' => WEEK_IN_SECONDS,             // 记住密码时间
    'cookie_name' => 'atrid',                // Cookie名
    'cookset_password' => false,             // Cookie中设置密码，该配置不用于此类
    'cookset_rolenames' => true,             // Cookie中设置用户拥有的角色名，该配置不用于此类
    'cookset_appnames' => true,              // Cookie中设置用户拥有权限的项目名，该配置不用于此类
  ),
)
</pre>
<p>配置 /cfg/key/cluster.php：</p>
<pre>
return array (
  'auth_passport' => array (
    'crypt' => 'UViRN53uj7yZ5IAfdIGiq5bvRuCH9njd', // 加密密钥
    'sign' => 'xwFVMiM98nzW6PwW9jxCmT2mLTv5IJES',  // 签名密钥
    'expiry' => MONTH_IN_SECONDS,                  // 缺省的密文有效期，如果等于0，表示永久有效，单位：秒
    'rnd_len' => 20                                // 随机密钥长度，取值 0-32
  ),
)
</pre></div>
        <a href="../classes/tfc.auth.Authentica.html" class="more">« More »</a>    </div>

                                        <div id="class_Authoriz" class="element ajax clickable class" data-toggle="collapse" data-target="#class_Authoriz .collapse">
        <h1>Authoriz<a href="../classes/tfc.auth.Authoriz.html">¶</a></h1>
        <p class="short_description">Authoriz class file
用户身份授权类</p>
        <div class="details collapse"></div>
        <a href="../classes/tfc.auth.Authoriz.html" class="more">« More »</a>    </div>

                            </div>
            
    
    
    
        </div>
    </div>
    </div>

        <footer class="span12">
            Template is built using <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap 2</a> and icons provided by
            <a href="http://glyphicons.com/">Glyphicons</a>.<br/>
            Documentation is powered by <a href="http://www.phpdoc.org/">phpDocumentor </a> and<br/>
            generated on Sat, 27 Dec 2014 06:16:37 +0000.<br/>
    </footer>
    </body>
</html>
